﻿#ifndef _FITK_PHENGLEI_VISCOUSMODEL__H___
#define _FITK_PHENGLEI_VISCOUSMODEL__H___
 
#include "FITKInterfaceFlowPHengLEIAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractNDataObject.h"
#include <QString>


namespace Core
{
    class FITKParameter;
}

namespace Interface
{
	class FITKPHengLEIViscousType;
	/**
	 * @brief  粘性模型类
	 * @author liuzhonghua (liuzhonghuaszch@163.com)
	 * @date   2024-08-21
	 */
	class FITKFlowPHengLEIAPI FITKPHengLEIViscousModel : public Core::FITKAbstractNDataObject
	{
	public:
		/**
		 * @brief Construct a new FITKPHengLEIViscousModel object
		 * @author LiBaojun (libaojunqd@foxmail.com)
		 * @date 2024-07-18
		 */
		FITKPHengLEIViscousModel();
		/**
		 * @brief Destroy the FITKPHengLEIViscousModel object
		 * @author LiBaojun (libaojunqd@foxmail.com)
		 * @date 2024-07-18
		 */
		virtual ~FITKPHengLEIViscousModel();
		/**
		 * @brief 获取粘性模型参数
		 * @return  FITKParameter
		 * @author WangKai (aurora_starry@outlook.com)
		 * @date 2024-10-05
		 */
		Core::FITKParameter* getAdditionalVicousModelData();
		/**
		 * @brief 设置粘性模型参数
		 * @params data
		 * @author WangKai (aurora_starry@outlook.com)
		 * @date 2024-10-05
		 */
		void setAdditionalVicousModelData(Core::FITKParameter* data);
		/**
		 * @brief 设置粘性模型类型
		 * @params viscousType
		 * @author WangKai (aurora_starry@outlook.com)
		 * @date 2024-10-05
		 */
		void setViscousType(FITKPHengLEIViscousType* viscousType);
		/**
		 * @brief 获取来流类型
		 * @return  FITKPHengLEIAbstractInFlowType
		 * @author WangKai (aurora_starry@outlook.com)
		 * @date 2024-10-05
		 */
		FITKPHengLEIViscousType* getViscousType();
	private:
		QString _name{};
		/**
		 * @brief 粘性模型参数
		 * @author WangKai (aurora_starry@outlook.com)
		 * @date 2024-10-05
		 */
		Core::FITKParameter* _additionalViscous{};

		FITKPHengLEIViscousType* _viscousType{};
	};
}
#endif
